package io.renren.utils.wx.wxpay.impl;//package io.renren.modules.app.base.wxpay.impl;
//
//import cn.hutool.core.util.RandomUtil;
//import io.renren.common.exception.RRException;
//import io.renren.common.utils.IPUtils;
//import io.renren.modules.app.base.wxpay.sdk.WXPay;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.util.HashMap;
//import java.util.Map;
//
//@Component
//public class MyWxPay {
//
//
//    private Logger logger = LoggerFactory.getLogger(MyWxPay.class);
//
//    @Autowired
//    MyConfig myConfig;
//
//    public Map<String, Object> sendPayRequest(String amount, String orderNo, String goodsDescription) throws Exception {
//        WXPay wxpay = new WXPay(myConfig);
//
//        String ipAddr = IPUtils.getIpAddr(request);
//
//        Map<String, String> data = new HashMap<String, String>();
//        // 商品描述
//        data.put("body", goodsDescription);
//        // 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|* 且在同一个商户号下唯一
//        data.put("out_trade_no", orderNo);
//        // 设备号 自定义参数，可以为终端设备号(门店号或收银设备ID)，PC网页或公众号内支付可以传"WEB"
//        data.put("device_info", "WEB");
//        // 货币类型，标价币种
//        data.put("fee_type", "CNY");
//        // 标价金额
//        data.put("total_fee", amount);
//        // 终端IP
//        data.put("spbill_create_ip", ipAddr);
//        // 微信回调地址
//        data.put("notify_url", wxPayProperties.getCallback());
//        // 交易类型，此处指定为扫码支付
//        data.put("trade_type", "NATIVE");
//        // 商品ID，trade_type=NATIVE时，此参数必传。此参数为二维码中包含的商品ID，商户自行定义
//        data.put("product_id", "12");
//
//        String signature = WXPayUtil.generateSignature(data, myConfig.getKey(), WXPayConstants.SignType.MD5);
//        data.put("sign", signature);
//
//        logger.info(" 请求微信支付的参数 data = {}", data);
//
//        try {
//            Map<String, String> resp = wxpay.unifiedOrder(data);
//            logger.info("请求微信支付获取的响应内容 resp = {}", resp);
//            String return_code = resp.get("return_code");
//            if ("SUCCESS".equals(return_code)) {
//                // 成功
//                Map<String, Object> map = new HashMap<>();
//                map.put("code_url", resp.get("code_url"));
//                return map;
//            } else {
//                throw new RRException("请求微信支付失败！！！");
//            }
//        } catch (Exception e) {
//            throw e;
//        }
//    }
//
//
////    /**
////     * 发送手机h5请求，调起手机微信支付
////     *
////     * @param amount
////     * @param orderNo
////     * @param goodsDescription
////     * @return
////     * @throws Exception
////     */
////    public Map<String, Object> sendH5PayRequest(String amount, String orderNo, String goodsDescription) throws Exception {
////        WXPay wxpay = new WXPay(myConfig);
////
////        String ipAddr = IPUtils.getIpAddr(request);
//////        String ipAddr = "218.68.108.126";
////
////        Map<String, String> data = new HashMap<String, String>();
////        // 商品描述
////        data.put("body", goodsDescription);
////        // 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|* 且在同一个商户号下唯一
////        data.put("out_trade_no", orderNo);
////        // 设备号 自定义参数，可以为终端设备号(门店号或收银设备ID)，PC网页或公众号内支付可以传"WEB"
////        data.put("device_info", "WEB");
////        // 货币类型，标价币种
////        data.put("fee_type", "CNY");
////        // 标价金额
////        data.put("total_fee", amount);
////        // 终端IP
////        data.put("spbill_create_ip", ipAddr);
////        // 微信回调地址
////        data.put("notify_url", wxPayProperties.getCallback());
////        // 交易类型，此处指定为H5支付
////        data.put("trade_type", "MWEB");
////        // 商品ID，trade_type=NATIVE时，此参数必传。此参数为二维码中包含的商品ID，商户自行定义
////        data.put("product_id", "12");
////        // 公众账号id
////        data.put("appid", wxPayProperties.getAppId());
////        // 随机字符串
////        String s = RandomUtil.randomString(RandomUtil.BASE_CHAR_NUMBER, 32);
////        data.put("nonce_str", s);
////        // 场景信息
////        String scene_info = "{\"h5_info\": {\"type\":\"Wap\",\"wap_url\": \"http://www.youtui66.com/\",\"wap_name\": \"充值\"}}";
////        data.put("scene_info", scene_info);
////
////
////        String signature = WXPayUtil.generateSignature(data, myConfig.getKey(), WXPayConstants.SignType.MD5);
////        data.put("sign", signature);
////
////        logger.info(" 请求微信支付的参数 data = {}", data);
////
////        try {
////            Map<String, String> resp = wxpay.unifiedOrder(data);
////            //{nonce_str=pRjbqf07f67uJ7Vh, device_info=WEB,
////            // mweb_url=https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx102217264364463cb674ad9e1395166100&package=1189594780, appid=wx6194ab69318adae3,
////            // sign=26906EA7C717FA9BD52784B3343003914172549E625981B2AB0B56C53CB5733F, trade_type=MWEB, return_msg=OK, result_code=SUCCESS, mch_id=1580828991, return_code=SUCCESS, prepay_id=wx102217264364463cb674ad9e1395166100}
////            logger.info("请求微信支付获取的响应内容 resp = {}", resp);
////            String return_code = resp.get("return_code");
////            if ("SUCCESS".equals(return_code)) {
////                // 成功
////                Map<String, Object> map = new HashMap<>();
////                map.put("mweb_url", resp.get("mweb_url"));
////                map.put("trade_type", resp.get("trade_type"));
////                map.put("prepay_id", resp.get("prepay_id"));
////                return map;
////            } else {
////                throw new RRException("请求微信支付失败！！！");
////            }
////        } catch (Exception e) {
////            throw e;
////        }
////    }
//}
